package sv.com.bolsaTrabajo.view.bean.managedbeans;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.context.RequestContext;
import sv.com.bolsaTrabajo.model.dao.TipoJornadaFacade;
import sv.com.bolsaTrabajo.model.entities.TipoJornada;
import sv.com.bolsaTrabajo.view.bean.ManejadorAccion;

/**
 *
 * @author Karina Palacios
 */
@ManagedBean
@SessionScoped
public final class TipoJornadaMB extends ManejadorAccion {

    @EJB
    private TipoJornadaFacade tipoJornadaFacade;
    private TipoJornada tipoJornada;
    private List<TipoJornada> tipoJornadas;

    /**
     * Constructor
     */
    public TipoJornadaMB() {
        limpiarTipoJor();
        tipoJornada = new TipoJornada();
    }

    public void limpiarTipoJor() {
        setTipoJornada(new TipoJornada());
    }

    public List<TipoJornada> getTipoJornadas() {
        tipoJornadas = tipoJornadaFacade.obtenerTodos();
        return tipoJornadas;
    }

    public void guardarEntidad() {
        try {
            System.out.println("====> Ingresando a crear Tipo Jornada");
            getTipoJornada().setFechaMod(new Date());

            if (tipoJornada.getIdTipoJornada()== null) {
                tipoJornadaFacade.crear(tipoJornada);
                lanzarMensajeInformacion("Exito", "Tipo Jornada guardada correctamente");
            } else {
                tipoJornadaFacade.modificar(tipoJornada);
                lanzarMensajeInformacion("Exito", "Tipo Jornada modificada correctamente");
            }
            RequestContext.getCurrentInstance().update("IDFrmTipoJornada");
            RequestContext.getCurrentInstance().execute("WVDialogTipoJornada.hide();");
        } catch (Exception e) {
            lanzarMensajeError("", "Error al guardar Tipo Jornada", e);
        }
    }

    public void modificarEntidad(TipoJornada mod) {
        try {
            this.tipoJornada = mod;
        } catch (Exception e) {
            lanzarMensajeError("Error al actualizar datos", "No se pueden asignar los valores para Tipo Jornada", e);
        }
        RequestContext.getCurrentInstance().update("");
    }

    /**
     * ****************** Getters and Setter ********************
     */
    
    public TipoJornadaFacade getTipoJornadaFacade() {
        return tipoJornadaFacade;
    }

    public void setTipoJornadaFacade(TipoJornadaFacade tipoJornadaFacade) {
        this.tipoJornadaFacade = tipoJornadaFacade;
    }

    public TipoJornada getTipoJornada() {
        return tipoJornada;
    }

    public void setTipoJornada(TipoJornada tipoJornada) {
        this.tipoJornada = tipoJornada;
    }

   
    
}
